#define _CRT_SECURE_NO_WARNINGS 1

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>

using namespace std;

//const int N = 100010;
//int n;
//int a[N];
//
//int main()
//{
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++) scanf("%d", &a[i]);
//    int res = 0;
//    int flag = 0;
//    for (int i = 0; i < n - 1; i++)
//    {
//        if (flag == 0)
//        {
//            if (a[i] < a[i + 1])
//            {
//                flag = 1;
//            }
//            else if (a[i] > a[i + 1])
//            {
//                flag = -1;
//            }
//        }
//        else
//        {
//            if (flag * a[i] > flag * a[i + 1])
//            {
//                res++;
//                flag = 0;
//            }
//        }
//    }
//    printf("%d\n", res + 1);
//    return 0;
//}

//int main()
//{
//    string str;
//    getline(cin, str);
//    reverse(str.begin(), str.end());
//    str.push_back('\0');
//    int begin = 0;
//    auto it = str.begin();
//    for (int i = 0; i < str.size(); i++)
//    {
//        if (str[i] == ' '|| str[i] == '\0')
//        {
//            reverse(it + begin, it + i);
//            begin = i + 1;
//        }
//    }
//    str.pop_back();
//    for (auto it : str)
//    {
//        cout << it;
//    }
//    cout << endl;
//    return 0;
//}


int exgcd(int a, int b, int& x, int& y)
{
	if (!b)
	{
		x = 1, y = 0;
		return a;
	}
	int d = exgcd(b, a % b, y, x);
	y -= a / b * x;
	return d;
}

int main()
{
	int a, b, x, y;
	cin >> a >> b;
	int d = exgcd(a, b, x, y);
	printf("%d * %d + %d * %d = %d", a, x, b, y, d);
	return 0;
}